import type Form from "./components/e-form/e-form.vue";
import type FormItem from "./components/e-form-item/e-form-item.vue";
import type Code from "./components/e-code/e-code.vue";
import type CodeButton from "./components/e-code-button/e-code-button.vue";
import type CalendarMonth from "./components/e-calendar-month/e-calendar-month.vue";
import type Input from "./components/e-input/e-input.vue";
import type Picker from "./components/e-picker/e-picker.vue";

import type { setComponentsProps, resetProps } from './libs/config/componentsProps'


import type {
	pickerChangeValue,
	pickerConfirmValue,
} from "./components/e-picker/props";

import type {
	FormRules
} from "./libs/tokens";


export interface Endless {
	setComponentsProps : typeof setComponentsProps
	resetProps : typeof resetProps
	mpShare : {
		title : string
		path : string
		imageUrl : string
	} & Record<string, string>
}


export type FormInstance = InstanceType<typeof Form>;
export type FormItemInstance = InstanceType<typeof FormItem>;
export type CodeInstance = InstanceType<typeof Code>;
export type CodeButtonInstance = InstanceType<typeof CodeButton>;
export type CalendarMonthInstance = InstanceType<typeof CalendarMonth>;
export type InputInstance = InstanceType<typeof Input>;
export type PickerInstance = InstanceType<typeof Picker>;



export {  pickerChangeValue, pickerConfirmValue, FormRules };